Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Displaying Raw • Download


meshchatx/src/frontend/js/lxmfReactions.js d92c2efc22b3cba79cd4e2c0b9794a2c4ecd75eb (d92c2efc) Text, 2.96 KB

T8b949e/**
* Columba-compatible LXMF field-16 reactions: merge reaction rows onto parent messages.
*/

Tff7b72export Tff7b72const Te6edf3COLUMBA_REACTION_EMOJIS Tff7b72= Tb4b4b4[
Ta5d6ff"\u{1F44D}"Tb4b4b4,
Ta5d6ff"\u2764\uFE0F"Tb4b4b4,
Ta5d6ff"\u{1F602}"Tb4b4b4,
Ta5d6ff"\u{1F62E}"Tb4b4b4,
Ta5d6ff"\u{1F622}"Tb4b4b4,
Ta5d6ff"\u{1F621}"Tb4b4b4,
Tb4b4b4]Tb4b4b4;

Tff7b72function Te6edf3reactionEmojiFromLxmfMessageFieldsTb4b4b4(Te6edf3fieldsTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3fields Tff7b72|| Tff7b72typeof Te6edf3fields Tff7b72!== Ta5d6ff"object"Tb4b4b4) Tb4b4b4{
Tff7b72return Ta5d6ff""Tb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3app Tff7b72= Te6edf3fieldsTb4b4b4.Te6edf3app_extensionsTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3app Tff7b72&& Tff7b72typeof Te6edf3app Tff7b72=== Ta5d6ff"object" Tff7b72&& Te6edf3appTb4b4b4.Te6edf3reaction_toTb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72typeof Te6edf3appTb4b4b4.Te6edf3emoji Tff7b72=== Ta5d6ff"string" Tff7b72? Te6edf3appTb4b4b4.Te6edf3emoji Tff7b72: Ta5d6ff""Tb4b4b4;
Tb4b4b4}
Tff7b72return Ta5d6ff""Tb4b4b4;
Tb4b4b4}

T8b949e/**
* One-line preview for conversation list / sidebar (plain text or i18n via `t`).
*/
Tff7b72export Tff7b72function Te6edf3lxmfConversationListPreviewTb4b4b4(Te6edf3msgTb4b4b4, Tb4b4b4{ Te6edf3myLxmfAddressHashTb4b4b4, Te6edf3peerDisplayNameTb4b4b4, Te6edf3t Tb4b4b4}Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3raw Tff7b72= Te6edf3msgTff7b72?Tb4b4b4.Te6edf3contentTb4b4b4;
Tff7b72const Te6edf3content Tff7b72= Tff7b72typeof Te6edf3raw Tff7b72=== Ta5d6ff"string" Tff7b72? Te6edf3rawTb4b4b4.Te6edf3trimTb4b4b4(Tb4b4b4) Tff7b72: Ta5d6ff""Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3contentTb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3rawTb4b4b4;
Tb4b4b4}

Tff7b72const Te6edf3emoji Tff7b72=
Tb4b4b4(Te6edf3msgTff7b72?Tb4b4b4.Te6edf3is_reaction Tff7b72&& Tff7b72typeof Te6edf3msgTff7b72?Tb4b4b4.Te6edf3reaction_emoji Tff7b72=== Ta5d6ff"string" Tff7b72&& Te6edf3msgTb4b4b4.Te6edf3reaction_emojiTb4b4b4) Tff7b72||
Te6edf3reactionEmojiFromLxmfMessageFieldsTb4b4b4(Te6edf3msgTff7b72?Tb4b4b4.Te6edf3fieldsTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3emojiTb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3raw Tff7b72?? Ta5d6ff""Tb4b4b4;
Tb4b4b4}

Tff7b72const Te6edf3incoming Tff7b72= Tffa657BooleanTb4b4b4(Te6edf3msgTff7b72?Tb4b4b4.Te6edf3is_incomingTb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3src Tff7b72= Tffa657StringTb4b4b4(Te6edf3msgTff7b72?Tb4b4b4.Te6edf3source_hash Tff7b72|| Ta5d6ff""Tb4b4b4)Tb4b4b4.Te6edf3toLowerCaseTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3me Tff7b72= Tffa657StringTb4b4b4(Te6edf3myLxmfAddressHash Tff7b72|| Ta5d6ff""Tb4b4b4)Tb4b4b4.Te6edf3toLowerCaseTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3reactorIsYou Tff7b72= Tff7b72!Te6edf3incoming Tff7b72&& Te6edf3me Tff7b72&& Te6edf3src Tff7b72=== Te6edf3meTb4b4b4;

Tff7b72let Te6edf3nameTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3incomingTb4b4b4) Tb4b4b4{
Te6edf3name Tff7b72= Te6edf3peerDisplayName Tff7b72|| Ta5d6ff"Anonymous Peer"Tb4b4b4;
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Te6edf3reactorIsYouTb4b4b4) Tb4b4b4{
Te6edf3name Tff7b72= Tff7b72typeof Te6edf3t Tff7b72=== Ta5d6ff"function" Tff7b72? Te6edf3tTb4b4b4(Ta5d6ff"messages.reaction_you"Tb4b4b4) Tff7b72: Ta5d6ff"You"Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Te6edf3name Tff7b72= Te6edf3peerDisplayName Tff7b72|| Ta5d6ff"Anonymous Peer"Tb4b4b4;
Tb4b4b4}

Tff7b72if Tb4b4b4(Tff7b72typeof Te6edf3t Tff7b72=== Ta5d6ff"function"Tb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3tTb4b4b4(Ta5d6ff"messages.conversation_reaction_preview"Tb4b4b4, Tb4b4b4{ Te6edf3nameTb4b4b4, Te6edf3emoji Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72return Ta5d6ff`Tffd700${Te6edf3nameTffd700}Ta5d6ff reacted Tffd700${Te6edf3emojiTffd700}Ta5d6ff`Tb4b4b4;
Tb4b4b4}

Tff7b72export Tff7b72function Te6edf3mergeLxmfReactionRowsIntoMessagesTb4b4b4(Te6edf3messagesTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Tffa657ArrayTb4b4b4.Te6edf3isArrayTb4b4b4(Te6edf3messagesTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72return Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3messagesTb4b4b4.Te6edf3length Tff7b72=== T79c0ff0Tb4b4b4) Tb4b4b4{
Tff7b72return Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3parents Tff7b72= Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tff7b72const Te6edf3reactions Tff7b72= Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72const Te6edf3m Tff7b72of Te6edf3messagesTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3mTb4b4b4) Tb4b4b4{
Tff7b72continueTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3mTb4b4b4.Te6edf3is_reactionTb4b4b4) Tb4b4b4{
Te6edf3reactionsTb4b4b4.Te6edf3pushTb4b4b4(Te6edf3mTb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Te6edf3parentsTb4b4b4.Te6edf3pushTb4b4b4(Tb4b4b4{ Tb4b4b4...Te6edf3mTb4b4b4, Te6edf3reactionsTff7b72: Tb4b4b4[Tb4b4b4] Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72const Te6edf3byHash Tff7b72= Tff7b72new Tffa657MapTb4b4b4(Te6edf3parentsTb4b4b4.Te6edf3mapTb4b4b4(Tb4b4b4(Te6edf3pTb4b4b4) Tb4b4b4=> Tb4b4b4[Tffa657StringTb4b4b4(Te6edf3pTb4b4b4.Te6edf3hash Tff7b72|| Ta5d6ff""Tb4b4b4)Tb4b4b4.Te6edf3toLowerCaseTb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3pTb4b4b4]Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72const Te6edf3r Tff7b72of Te6edf3reactionsTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3targetId Tff7b72= Te6edf3rTb4b4b4.Te6edf3reaction_toTb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3targetIdTb4b4b4) Tb4b4b4{
Tff7b72continueTb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3parent Tff7b72= Te6edf3byHashTb4b4b4.Te6edf3getTb4b4b4(Tffa657StringTb4b4b4(Te6edf3targetIdTb4b4b4)Tb4b4b4.Te6edf3toLowerCaseTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3parentTb4b4b4) Tb4b4b4{
Tff7b72continueTb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3sender Tff7b72= Te6edf3rTb4b4b4.Te6edf3reaction_sender Tff7b72|| Te6edf3rTb4b4b4.Te6edf3source_hash Tff7b72|| Ta5d6ff""Tb4b4b4;
Tff7b72const Te6edf3emoji Tff7b72= Te6edf3rTb4b4b4.Te6edf3reaction_emoji Tff7b72|| Ta5d6ff""Tb4b4b4;
Tff7b72const Te6edf3dup Tff7b72= Te6edf3parentTb4b4b4.Te6edf3reactionsTb4b4b4.Te6edf3someTb4b4b4(Tb4b4b4(Te6edf3xTb4b4b4) Tb4b4b4=> Te6edf3xTb4b4b4.Te6edf3sender Tff7b72=== Te6edf3sender Tff7b72&& Te6edf3xTb4b4b4.Te6edf3emoji Tff7b72=== Te6edf3emojiTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3dupTb4b4b4) Tb4b4b4{
Te6edf3parentTb4b4b4.Te6edf3reactionsTb4b4b4.Te6edf3pushTb4b4b4(Tb4b4b4{
Te6edf3emojiTb4b4b4,
Te6edf3senderTb4b4b4,
Te6edf3reactionHashTff7b72: Te6edf3rTb4b4b4.Te6edf3hashTb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72return Te6edf3parentsTb4b4b4;
Tb4b4b4}


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────